The present invention relates generally to the field of computing performance, and more particularly to moving workloads between central processing units (CPUs) to accommodate balance.
Scheduling is the method by which work specified by some means is assigned to resources that complete the work. The work may be virtual computation elements, such as, threads, processes, or data flows, which are in turn scheduled onto hardware resources, such as, processors or network lines.
A scheduler is what carries out the scheduling activity. Schedulers are often implemented to keep all computer resources busy, allow multiple users to share system resources effectively, or to achieve a target quality of service. A scheduler may aim at one or more goals, for example: maximizing throughput; minimizing wait time; minimizing latency or response time; or maximizing fairness.
A workload is the amount of processing that the computer has been given to do at a given time. The workload consists of some amount of application programming running in the computer and usually some number of users connected to and interacting with the computer's applications. A defined workload can be specified as a benchmark when evaluating a computer system in terms of performance, which in turn is generally divided into response time and throughput.